{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "d542a130",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "\n",
    "import matplotlib as mpl\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "from sklearn.preprocessing import OneHotEncoder\n",
    "import numpy as np\n",
    "from sklearn.model_selection import KFold\n",
    "from sklearn.metrics import accuracy_score\n",
    "import lightgbm as lgb\n",
    "from sklearn.linear_model import LogisticRegression\n",
    "from sklearn.tree import DecisionTreeClassifier\n",
    "import warnings\n",
    "warnings.filterwarnings('ignore')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "88c30cb5",
   "metadata": {
    "heading_collapsed": true
   },
   "source": [
    "# 报名比赛，下载比赛数据集并完成读取"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "83b4dc92",
   "metadata": {
    "hidden": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Unnamed: 0</th>\n",
       "      <th>android_id</th>\n",
       "      <th>apptype</th>\n",
       "      <th>carrier</th>\n",
       "      <th>dev_height</th>\n",
       "      <th>dev_ppi</th>\n",
       "      <th>dev_width</th>\n",
       "      <th>label</th>\n",
       "      <th>lan</th>\n",
       "      <th>media_id</th>\n",
       "      <th>...</th>\n",
       "      <th>os</th>\n",
       "      <th>osv</th>\n",
       "      <th>package</th>\n",
       "      <th>sid</th>\n",
       "      <th>timestamp</th>\n",
       "      <th>version</th>\n",
       "      <th>fea_hash</th>\n",
       "      <th>location</th>\n",
       "      <th>fea1_hash</th>\n",
       "      <th>cus_type</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>316361</td>\n",
       "      <td>1199</td>\n",
       "      <td>46000.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1</td>\n",
       "      <td>NaN</td>\n",
       "      <td>104</td>\n",
       "      <td>...</td>\n",
       "      <td>android</td>\n",
       "      <td>9</td>\n",
       "      <td>18</td>\n",
       "      <td>1438873</td>\n",
       "      <td>1.559893e+12</td>\n",
       "      <td>8</td>\n",
       "      <td>2135019403</td>\n",
       "      <td>0</td>\n",
       "      <td>2329670524</td>\n",
       "      <td>601</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>135939</td>\n",
       "      <td>893</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1</td>\n",
       "      <td>NaN</td>\n",
       "      <td>19</td>\n",
       "      <td>...</td>\n",
       "      <td>android</td>\n",
       "      <td>8.1</td>\n",
       "      <td>0</td>\n",
       "      <td>1185582</td>\n",
       "      <td>1.559994e+12</td>\n",
       "      <td>4</td>\n",
       "      <td>2782306428</td>\n",
       "      <td>1</td>\n",
       "      <td>2864801071</td>\n",
       "      <td>1000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2</td>\n",
       "      <td>399254</td>\n",
       "      <td>821</td>\n",
       "      <td>0.0</td>\n",
       "      <td>760.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>360.0</td>\n",
       "      <td>1</td>\n",
       "      <td>NaN</td>\n",
       "      <td>559</td>\n",
       "      <td>...</td>\n",
       "      <td>android</td>\n",
       "      <td>8.1.0</td>\n",
       "      <td>0</td>\n",
       "      <td>1555716</td>\n",
       "      <td>1.559837e+12</td>\n",
       "      <td>0</td>\n",
       "      <td>1392806005</td>\n",
       "      <td>2</td>\n",
       "      <td>628911675</td>\n",
       "      <td>696</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>3</td>\n",
       "      <td>68983</td>\n",
       "      <td>1004</td>\n",
       "      <td>46000.0</td>\n",
       "      <td>2214.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1080.0</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>129</td>\n",
       "      <td>...</td>\n",
       "      <td>android</td>\n",
       "      <td>8.1.0</td>\n",
       "      <td>0</td>\n",
       "      <td>1093419</td>\n",
       "      <td>1.560042e+12</td>\n",
       "      <td>0</td>\n",
       "      <td>3562553457</td>\n",
       "      <td>3</td>\n",
       "      <td>1283809327</td>\n",
       "      <td>753</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>4</td>\n",
       "      <td>288999</td>\n",
       "      <td>1076</td>\n",
       "      <td>46000.0</td>\n",
       "      <td>2280.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1080.0</td>\n",
       "      <td>1</td>\n",
       "      <td>zh-CN</td>\n",
       "      <td>64</td>\n",
       "      <td>...</td>\n",
       "      <td>android</td>\n",
       "      <td>8.0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>1400089</td>\n",
       "      <td>1.559867e+12</td>\n",
       "      <td>5</td>\n",
       "      <td>2364522023</td>\n",
       "      <td>4</td>\n",
       "      <td>1510695983</td>\n",
       "      <td>582</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>499995</th>\n",
       "      <td>499995</td>\n",
       "      <td>392477</td>\n",
       "      <td>1028</td>\n",
       "      <td>46000.0</td>\n",
       "      <td>1920.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1080.0</td>\n",
       "      <td>1</td>\n",
       "      <td>zh-CN</td>\n",
       "      <td>144</td>\n",
       "      <td>...</td>\n",
       "      <td>Android</td>\n",
       "      <td>7.1.2</td>\n",
       "      <td>25</td>\n",
       "      <td>1546078</td>\n",
       "      <td>1.559834e+12</td>\n",
       "      <td>7</td>\n",
       "      <td>861755946</td>\n",
       "      <td>79</td>\n",
       "      <td>140647032</td>\n",
       "      <td>373</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>499996</th>\n",
       "      <td>499996</td>\n",
       "      <td>346134</td>\n",
       "      <td>1001</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1424.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>720.0</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>29</td>\n",
       "      <td>...</td>\n",
       "      <td>android</td>\n",
       "      <td>8.1.0</td>\n",
       "      <td>0</td>\n",
       "      <td>1480612</td>\n",
       "      <td>1.559814e+12</td>\n",
       "      <td>3</td>\n",
       "      <td>1714444511</td>\n",
       "      <td>23</td>\n",
       "      <td>2745131047</td>\n",
       "      <td>525</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>499997</th>\n",
       "      <td>499997</td>\n",
       "      <td>499635</td>\n",
       "      <td>761</td>\n",
       "      <td>46000.0</td>\n",
       "      <td>1280.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>720.0</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>54</td>\n",
       "      <td>...</td>\n",
       "      <td>android</td>\n",
       "      <td>6.0.1</td>\n",
       "      <td>9</td>\n",
       "      <td>1698442</td>\n",
       "      <td>1.559676e+12</td>\n",
       "      <td>0</td>\n",
       "      <td>3843262581</td>\n",
       "      <td>25</td>\n",
       "      <td>1326115882</td>\n",
       "      <td>810</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>499998</th>\n",
       "      <td>499998</td>\n",
       "      <td>239786</td>\n",
       "      <td>917</td>\n",
       "      <td>46001.0</td>\n",
       "      <td>960.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>540.0</td>\n",
       "      <td>0</td>\n",
       "      <td>zh_CN</td>\n",
       "      <td>109</td>\n",
       "      <td>...</td>\n",
       "      <td>android</td>\n",
       "      <td>5.1.1</td>\n",
       "      <td>0</td>\n",
       "      <td>1331155</td>\n",
       "      <td>1.559840e+12</td>\n",
       "      <td>0</td>\n",
       "      <td>1984296118</td>\n",
       "      <td>225</td>\n",
       "      <td>1446741112</td>\n",
       "      <td>772</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>499999</th>\n",
       "      <td>499999</td>\n",
       "      <td>270531</td>\n",
       "      <td>929</td>\n",
       "      <td>46000.0</td>\n",
       "      <td>2040.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1080.0</td>\n",
       "      <td>1</td>\n",
       "      <td>zh-CN</td>\n",
       "      <td>59</td>\n",
       "      <td>...</td>\n",
       "      <td>Android</td>\n",
       "      <td>8.1.0</td>\n",
       "      <td>78</td>\n",
       "      <td>1373973</td>\n",
       "      <td>1.559922e+12</td>\n",
       "      <td>5</td>\n",
       "      <td>1697301943</td>\n",
       "      <td>49</td>\n",
       "      <td>1915763579</td>\n",
       "      <td>1076</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>500000 rows × 21 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        Unnamed: 0  android_id  apptype  carrier  dev_height  dev_ppi  \\\n",
       "0                0      316361     1199  46000.0         0.0      0.0   \n",
       "1                1      135939      893      0.0         0.0      0.0   \n",
       "2                2      399254      821      0.0       760.0      0.0   \n",
       "3                3       68983     1004  46000.0      2214.0      0.0   \n",
       "4                4      288999     1076  46000.0      2280.0      0.0   \n",
       "...            ...         ...      ...      ...         ...      ...   \n",
       "499995      499995      392477     1028  46000.0      1920.0      3.0   \n",
       "499996      499996      346134     1001      0.0      1424.0      0.0   \n",
       "499997      499997      499635      761  46000.0      1280.0      0.0   \n",
       "499998      499998      239786      917  46001.0       960.0      0.0   \n",
       "499999      499999      270531      929  46000.0      2040.0      3.0   \n",
       "\n",
       "        dev_width  label    lan  media_id  ...       os    osv package  \\\n",
       "0             0.0      1    NaN       104  ...  android      9      18   \n",
       "1             0.0      1    NaN        19  ...  android    8.1       0   \n",
       "2           360.0      1    NaN       559  ...  android  8.1.0       0   \n",
       "3          1080.0      0    NaN       129  ...  android  8.1.0       0   \n",
       "4          1080.0      1  zh-CN        64  ...  android  8.0.0       0   \n",
       "...           ...    ...    ...       ...  ...      ...    ...     ...   \n",
       "499995     1080.0      1  zh-CN       144  ...  Android  7.1.2      25   \n",
       "499996      720.0      0    NaN        29  ...  android  8.1.0       0   \n",
       "499997      720.0      0    NaN        54  ...  android  6.0.1       9   \n",
       "499998      540.0      0  zh_CN       109  ...  android  5.1.1       0   \n",
       "499999     1080.0      1  zh-CN        59  ...  Android  8.1.0      78   \n",
       "\n",
       "            sid     timestamp  version    fea_hash location   fea1_hash  \\\n",
       "0       1438873  1.559893e+12        8  2135019403        0  2329670524   \n",
       "1       1185582  1.559994e+12        4  2782306428        1  2864801071   \n",
       "2       1555716  1.559837e+12        0  1392806005        2   628911675   \n",
       "3       1093419  1.560042e+12        0  3562553457        3  1283809327   \n",
       "4       1400089  1.559867e+12        5  2364522023        4  1510695983   \n",
       "...         ...           ...      ...         ...      ...         ...   \n",
       "499995  1546078  1.559834e+12        7   861755946       79   140647032   \n",
       "499996  1480612  1.559814e+12        3  1714444511       23  2745131047   \n",
       "499997  1698442  1.559676e+12        0  3843262581       25  1326115882   \n",
       "499998  1331155  1.559840e+12        0  1984296118      225  1446741112   \n",
       "499999  1373973  1.559922e+12        5  1697301943       49  1915763579   \n",
       "\n",
       "        cus_type  \n",
       "0            601  \n",
       "1           1000  \n",
       "2            696  \n",
       "3            753  \n",
       "4            582  \n",
       "...          ...  \n",
       "499995       373  \n",
       "499996       525  \n",
       "499997       810  \n",
       "499998       772  \n",
       "499999      1076  \n",
       "\n",
       "[500000 rows x 21 columns]"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 数据加载\n",
    "train = pd.read_csv('./train.csv')\n",
    "test = pd.read_csv('./test.csv')\n",
    "train"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "16a190c7",
   "metadata": {
    "heading_collapsed": true
   },
   "source": [
    "# 对数据字段进行理解，对特征字段依次进行数据分析"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "05c16f97",
   "metadata": {
    "hidden": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['android_id', 'apptype', 'carrier', 'dev_height', 'dev_ppi', 'dev_width', 'label', 'lan', 'media_id', 'ntt', 'os', 'osv', 'package', 'sid', 'timestamp', 'version', 'fea_hash', 'location', 'fea1_hash', 'cus_type']\n"
     ]
    }
   ],
   "source": [
    "cols = list(train.columns)\n",
    "cols.remove('Unnamed: 0')\n",
    "print(cols)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "96851848",
   "metadata": {
    "heading_collapsed": true,
    "hidden": true
   },
   "source": [
    "## android_id "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "f056128a",
   "metadata": {
    "hidden": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "数据类型:<class 'numpy.int64'>\n",
      "取值范围:0 - 709898\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:>"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "print('数据类型:{}'.format(type(train['android_id'].iloc[0])))\n",
    "print('取值范围:{} - {}'.format(train['android_id'].min(), train['android_id'].max()))\n",
    "train['android_id'].hist()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2416323f",
   "metadata": {
    "heading_collapsed": true,
    "hidden": true
   },
   "source": [
    "## apptype"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "7860c48e",
   "metadata": {
    "hidden": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "数据类型:<class 'numpy.int64'>\n",
      "取值范围:95 - 1241\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:>"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "print('数据类型:{}'.format(type(train['apptype'].iloc[0])))\n",
    "print('取值范围:{} - {}'.format(train['apptype'].min(), train['apptype'].max()))\n",
    "train['android_id'].hist()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "48d8c42b",
   "metadata": {
    "heading_collapsed": true,
    "hidden": true
   },
   "source": [
    "## carrier "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "id": "cb7a44be",
   "metadata": {
    "hidden": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "数据类型:<class 'numpy.float64'>\n",
      "取值范围:-1.0 - 46003.0\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       " 46000.0    359409\n",
       " 46001.0     43390\n",
       " 0.0         40652\n",
       " 46003.0     32294\n",
       "-1.0         24255\n",
       "Name: carrier, dtype: int64"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "print('数据类型:{}'.format(type(train['carrier'].iloc[0])))\n",
    "print('取值范围:{} - {}'.format(train['carrier'].min(), train['carrier'].max()))\n",
    "train['carrier'].value_counts()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0e9782eb",
   "metadata": {
    "heading_collapsed": true,
    "hidden": true
   },
   "source": [
    "## dev_height "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "id": "870e2723",
   "metadata": {
    "hidden": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "数据类型:<class 'numpy.float64'>\n",
      "取值范围:0.0 - 9024.0\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:>"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "print('数据类型:{}'.format(type(train['dev_height'].iloc[0])))\n",
    "print('取值范围:{} - {}'.format(train['dev_height'].min(), train['dev_height'].max()))\n",
    "train['android_id'].hist()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e58a071e",
   "metadata": {
    "heading_collapsed": true,
    "hidden": true
   },
   "source": [
    "## dev_ppi"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "id": "83d41259",
   "metadata": {
    "hidden": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "数据类型:<class 'numpy.float64'>\n",
      "取值范围:0.0 - 720.0\n",
      "0.0      383291\n",
      "480.0     58775\n",
      "3.0       23543\n",
      "2.0       12891\n",
      "320.0      8498\n",
      "          ...  \n",
      "269.0         1\n",
      "100.0         1\n",
      "375.0         1\n",
      "430.0         1\n",
      "720.0         1\n",
      "Name: dev_ppi, Length: 92, dtype: int64\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:>"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "print('数据类型:{}'.format(type(train['dev_ppi'].iloc[0])))\n",
    "print('取值范围:{} - {}'.format(train['dev_ppi'].min(), train['dev_ppi'].max()))\n",
    "print(train['dev_ppi'].value_counts())\n",
    "train['dev_ppi'].hist()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7982c9ec",
   "metadata": {
    "heading_collapsed": true,
    "hidden": true
   },
   "source": [
    "## dev_width"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "id": "b65bb35b",
   "metadata": {
    "hidden": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "数据类型:<class 'numpy.float64'>\n",
      "取值范围:0.0 - 8832.0\n",
      "数值统计:\n",
      "1080.0    209914\n",
      "0.0       107011\n",
      "360.0      76852\n",
      "720.0      63317\n",
      "393.0       6259\n",
      "           ...  \n",
      "1271.0         1\n",
      "1952.0         1\n",
      "1357.0         1\n",
      "4736.0         1\n",
      "1510.0         1\n",
      "Name: dev_width, Length: 346, dtype: int64\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:>"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYoAAAD4CAYAAADy46FuAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAUPElEQVR4nO3df6zd9X3f8edrOGEuCdTAckUxmqlwp/FDI8Vy6Jimu3nCNJlmKoHmiBZHZXKFiJZsSBO0f9AFWQpTCRNsQXOLx4/RACJpjZow6kGuqkr8Mhmb+RGGW7zg4EEzewRHgmLy3h/nY+Vc3+PPNffa19x7nw/pq/M97+/38z3f7xubF98f55CqQpKkw/kbx3sHJEkfbQaFJKnLoJAkdRkUkqQug0KS1LXkeO/A0Xb66afXihUrZjz+Jz/5CSeddNLR26EFwJ5MZU8msx9TzbeePPfccz+qqr81atmCC4oVK1awffv2GY+fmJhgfHz86O3QAmBPprInk9mPqeZbT5L878Mt89KTJKnLoJAkdRkUkqQug0KS1GVQSJK6DApJUpdBIUnqMigkSV0GhSSpa8F9M3u2dvzwbb5ww7fn/HN3ffVzc/6ZknQkPKOQJHUZFJKkLoNCktRlUEiSugwKSVKXQSFJ6jIoJEldBoUkqcugkCR1TRsUSc5K8t0kLyd5McmXWv13k/wwyfNt+uzQmBuT7EzySpK1Q/WLkuxoy25PklY/McmDrf50khVDYzYkebVNG47q0UuSpnUkP+FxALi+qr6X5JPAc0m2tWW3VdXvDa+c5FxgPXAe8AvAf0vyS1X1AXAnsBF4CvgOcBnwKHANsK+qzkmyHrgF+OdJTgVuAlYB1T77karaN7vDliQdqWnPKKpqT1V9r82/A7wMnNkZsg54oKreq6rXgJ3A6iRnACdX1ZNVVcC9wOVDY+5p8w8Da9rZxlpgW1XtbeGwjUG4SJLmyIf6UcB2SejTwNPAJcAXk1wNbGdw1rGPQYg8NTRsd6u93+YPrdNeXweoqgNJ3gZOG66PGDO8XxsZnKkwNjbGxMTEhzmsScaWwvUXHJjx+JmazT4fa/v37/9I79/xYE8msx9TLaSeHHFQJPkE8E3gy1X14yR3AjczuCR0M3Ar8JtARgyvTp0ZjvlZoWozsBlg1apVNT4+3j2Wnjvu38qtO+b+R3V3XTU+5595pCYmJphNTxciezKZ/ZhqIfXkiJ56SvIxBiFxf1V9C6Cq3qyqD6rqp8DvA6vb6ruBs4aGLwfeaPXlI+qTxiRZApwC7O1sS5I0R47kqacAdwEvV9XXhupnDK32a8ALbf4RYH17kulsYCXwTFXtAd5JcnHb5tXA1qExB59ougJ4ot3HeAy4NMmyJMuAS1tNkjRHjuQayyXAbwA7kjzfar8NfD7JhQwuBe0Cfgugql5M8hDwEoMnpq5rTzwBXAvcDSxl8LTTo61+F3Bfkp0MziTWt23tTXIz8Gxb7ytVtXcmBypJmplpg6Kq/pzR9wq+0xmzCdg0or4dOH9E/V3gysNsawuwZbr9lCQdG34zW5LUZVBIkroMCklSl0EhSeoyKCRJXQaFJKnLoJAkdRkUkqQug0KS1GVQSJK6DApJUpdBIUnqMigkSV0GhSSpy6CQJHUZFJKkLoNCktRlUEiSugwKSVLXtP/PbM2NFTd8+7h99q6vfu64fbakjz7PKCRJXQaFJKnLoJAkdRkUkqQug0KS1GVQSJK6DApJUpdBIUnqMigkSV0GhSSpa9qgSHJWku8meTnJi0m+1OqnJtmW5NX2umxozI1JdiZ5JcnaofpFSXa0ZbcnSaufmOTBVn86yYqhMRvaZ7yaZMNRPXpJ0rSO5IziAHB9Vf1d4GLguiTnAjcAj1fVSuDx9p62bD1wHnAZ8PUkJ7Rt3QlsBFa26bJWvwbYV1XnALcBt7RtnQrcBHwGWA3cNBxIkqRjb9qgqKo9VfW9Nv8O8DJwJrAOuKetdg9weZtfBzxQVe9V1WvATmB1kjOAk6vqyaoq4N5Dxhzc1sPAmna2sRbYVlV7q2ofsI2fhYskaQ58qF+PbZeEPg08DYxV1R4YhEmST7XVzgSeGhq2u9Xeb/OH1g+Oeb1t60CSt4HThusjxgzv10YGZyqMjY0xMTHxYQ5rkrGlcP0FB2Y8fj6arl/79++fVU8XInsymf2YaiH15IiDIskngG8CX66qH7fbCyNXHVGrTn2mY35WqNoMbAZYtWpVjY+PH27fpnXH/Vu5dcfi+vX1XVeNd5dPTEwwm54uRPZkMvsx1ULqyRE99ZTkYwxC4v6q+lYrv9kuJ9Fe32r13cBZQ8OXA2+0+vIR9UljkiwBTgH2drYlSZojR/LUU4C7gJer6mtDix4BDj6FtAHYOlRf355kOpvBTetn2mWqd5Jc3LZ59SFjDm7rCuCJdh/jMeDSJMvaTexLW02SNEeO5BrLJcBvADuSPN9qvw18FXgoyTXAD4ArAarqxSQPAS8xeGLquqr6oI27FrgbWAo82iYYBNF9SXYyOJNY37a1N8nNwLNtva9U1d6ZHaokaSamDYqq+nNG3ysAWHOYMZuATSPq24HzR9TfpQXNiGVbgC3T7ack6djwm9mSpC6DQpLUZVBIkroMCklSl0EhSeoyKCRJXQaFJKnLoJAkdRkUkqQug0KS1GVQSJK6DApJUpdBIUnqMigkSV0GhSSpy6CQJHUZFJKkLoNCktRlUEiSugwKSVKXQSFJ6jIoJEldBoUkqcugkCR1GRSSpC6DQpLUZVBIkroMCklSl0EhSeqaNiiSbEnyVpIXhmq/m+SHSZ5v02eHlt2YZGeSV5KsHapflGRHW3Z7krT6iUkebPWnk6wYGrMhyatt2nDUjlqSdMSO5IzibuCyEfXbqurCNn0HIMm5wHrgvDbm60lOaOvfCWwEVrbp4DavAfZV1TnAbcAtbVunAjcBnwFWAzclWfahj1CSNCvTBkVV/Rmw9wi3tw54oKreq6rXgJ3A6iRnACdX1ZNVVcC9wOVDY+5p8w8Da9rZxlpgW1Xtrap9wDZGB5Yk6RhaMouxX0xyNbAduL79y/xM4KmhdXa32vtt/tA67fV1gKo6kORt4LTh+ogxkyTZyOBshbGxMSYmJmZ8UGNL4foLDsx4/Hw0Xb/2798/q54uRPZkMvsx1ULqyUyD4k7gZqDa663AbwIZsW516sxwzORi1WZgM8CqVatqfHy8s+t9d9y/lVt3zCY/559dV413l09MTDCbni5E9mQy+zHVQurJjJ56qqo3q+qDqvop8PsM7iHA4L/6zxpadTnwRqsvH1GfNCbJEuAUBpe6DrctSdIcmlFQtHsOB/0acPCJqEeA9e1JprMZ3LR+pqr2AO8kubjdf7ga2Do05uATTVcAT7T7GI8BlyZZ1m5iX9pqkqQ5NO01liTfAMaB05PsZvAk0niSCxlcCtoF/BZAVb2Y5CHgJeAAcF1VfdA2dS2DJ6iWAo+2CeAu4L4kOxmcSaxv29qb5Gbg2bbeV6rqSG+qS5KOkmmDoqo+P6J8V2f9TcCmEfXtwPkj6u8CVx5mW1uALdPtoyTp2PGb2ZKkLoNCktRlUEiSugwKSVKXQSFJ6jIoJEldBoUkqcugkCR1GRSSpC6DQpLUZVBIkroMCklSl0EhSeoyKCRJXQaFJKnLoJAkdRkUkqQug0KS1GVQSJK6DApJUpdBIUnqMigkSV0GhSSpy6CQJHUZFJKkLoNCktRlUEiSugwKSVKXQSFJ6jIoJEld0wZFki1J3krywlDt1CTbkrzaXpcNLbsxyc4kryRZO1S/KMmOtuz2JGn1E5M82OpPJ1kxNGZD+4xXk2w4akctSTpiR3JGcTdw2SG1G4DHq2ol8Hh7T5JzgfXAeW3M15Oc0MbcCWwEVrbp4DavAfZV1TnAbcAtbVunAjcBnwFWAzcNB5IkaW5MGxRV9WfA3kPK64B72vw9wOVD9Qeq6r2qeg3YCaxOcgZwclU9WVUF3HvImIPbehhY08421gLbqmpvVe0DtjE1sCRJx9iSGY4bq6o9AFW1J8mnWv1M4Kmh9Xa32vtt/tD6wTGvt20dSPI2cNpwfcSYSZJsZHC2wtjYGBMTEzM8LBhbCtdfcGDG4+ej6fq1f//+WfV0IbInk9mPqRZST2YaFIeTEbXq1Gc6ZnKxajOwGWDVqlU1Pj4+7Y4ezh33b+XWHUe7LR9tu64a7y6fmJhgNj1diOzJZPZjqoXUk5k+9fRmu5xEe32r1XcDZw2ttxx4o9WXj6hPGpNkCXAKg0tdh9uWJGkOzTQoHgEOPoW0Adg6VF/fnmQ6m8FN62faZap3klzc7j9cfciYg9u6Anii3cd4DLg0ybJ2E/vSVpMkzaFpr7Ek+QYwDpyeZDeDJ5G+CjyU5BrgB8CVAFX1YpKHgJeAA8B1VfVB29S1DJ6gWgo82iaAu4D7kuxkcCaxvm1rb5KbgWfbel+pqkNvqkuSjrFpg6KqPn+YRWsOs/4mYNOI+nbg/BH1d2lBM2LZFmDLdPsoSTp2/Ga2JKnLoJAkdRkUkqQug0KS1GVQSJK6DApJUpdBIUnqMigkSV0GhSSpy6CQJHUZFJKkLoNCktRlUEiSugwKSVKXQSFJ6jIoJEldBoUkqcugkCR1GRSSpC6DQpLUZVBIkroMCklSl0EhSeoyKCRJXQaFJKnLoJAkdRkUkqQug0KS1GVQSJK6DApJUtesgiLJriQ7kjyfZHurnZpkW5JX2+uyofVvTLIzyStJ1g7VL2rb2Znk9iRp9ROTPNjqTydZMZv9lSR9eEfjjOIfVdWFVbWqvb8BeLyqVgKPt/ckORdYD5wHXAZ8PckJbcydwEZgZZsua/VrgH1VdQ5wG3DLUdhfSdKHcCwuPa0D7mnz9wCXD9UfqKr3quo1YCewOskZwMlV9WRVFXDvIWMObuthYM3Bsw1J0txYMsvxBfxpkgL+U1VtBsaqag9AVe1J8qm27pnAU0Njd7fa+23+0PrBMa+3bR1I8jZwGvCj4Z1IspHBGQljY2NMTEzM+IDGlsL1FxyY8fj5aLp+7d+/f1Y9XYjsyWT2Y6qF1JPZBsUlVfVGC4NtSb7fWXfUmUB16r0xkwuDgNoMsGrVqhofH+/udM8d92/l1h2zbcv8suuq8e7yiYkJZtPThcieTGY/plpIPZnVpaeqeqO9vgX8EbAaeLNdTqK9vtVW3w2cNTR8OfBGqy8fUZ80JskS4BRg72z2WZL04cw4KJKclOSTB+eBS4EXgEeADW21DcDWNv8IsL49yXQ2g5vWz7TLVO8kubjdf7j6kDEHt3UF8ES7jyFJmiOzucYyBvxRu7e8BPjDqvqvSZ4FHkpyDfAD4EqAqnoxyUPAS8AB4Lqq+qBt61rgbmAp8GibAO4C7kuyk8GZxPpZ7K8kaQZmHBRV9ZfA3xtR/7/AmsOM2QRsGlHfDpw/ov4uLWgkSceH38yWJHUZFJKkLoNCktRlUEiSugwKSVKXQSFJ6jIoJEldBoUkqcugkCR1GRSSpC6DQpLUZVBIkroMCklSl0EhSeoyKCRJXQaFJKnLoJAkdRkUkqQug0KS1GVQSJK6DApJUteS470DOv5W3PDt7vLrLzjAF6ZZZyZ2ffVzR32bko4+zygkSV0GhSSpy6CQJHUZFJKkLoNCktRlUEiSugwKSVKXQSFJ6poXQZHksiSvJNmZ5IbjvT+StJh85IMiyQnAfwR+FTgX+HySc4/vXknS4vGRDwpgNbCzqv6yqv4aeABYd5z3SZIWjfnwW09nAq8Pvd8NfGZ4hSQbgY3t7f4kr8zi804HfjSL8QvOvzxGPcktR3uLc8o/J5PZj6nmW0/+9uEWzIegyIhaTXpTtRnYfFQ+LNleVauOxrYWCnsylT2ZzH5MtZB6Mh8uPe0Gzhp6vxx44zjtiyQtOvMhKJ4FViY5O8nHgfXAI8d5nyRp0fjIX3qqqgNJvgg8BpwAbKmqF4/hRx6VS1gLjD2Zyp5MZj+mWjA9SVVNv5YkadGaD5eeJEnHkUEhSeoyKJrF9DMhSc5K8t0kLyd5McmXWv3UJNuSvNpelw2NubH15pUka4fqFyXZ0ZbdnmTU48zzQpITkvz3JH/S3i/2fvx8koeTfL/9WfkVe5J/1f7OvJDkG0n+5qLoSVUt+onBTfK/AH4R+DjwP4Bzj/d+HcPjPQP45Tb/SeB/Mfh5lH8H3NDqNwC3tPlzW09OBM5uvTqhLXsG+BUG33d5FPjV4318s+jLvwb+EPiT9n6x9+Me4F+0+Y8DP7+Ye8Lgy7+vAUvb+4eALyyGnnhGMbCofiakqvZU1ffa/DvAywz+Eqxj8C8H2uvlbX4d8EBVvVdVrwE7gdVJzgBOrqona/Cn/96hMfNKkuXA54A/GCov5n6cDPxD4C6Aqvrrqvp/LOKeNEuApUmWAD/H4DtdC74nBsXAqJ8JOfM47cucSrIC+DTwNDBWVXtgECbAp9pqh+vPmW3+0Pp89O+BfwP8dKi2mPvxi8BfAf+5XY77gyQnsYh7UlU/BH4P+AGwB3i7qv6URdATg2Jg2p8JWYiSfAL4JvDlqvpxb9URterU55Uk/xR4q6qeO9IhI2oLph/NEuCXgTur6tPATxhcVjmcBd+Tdu9hHYPLSL8AnJTk13tDRtTmZU8MioFF9zMhST7GICTur6pvtfKb7bSY9vpWqx+uP7vb/KH1+eYS4J8l2cXgsuM/TvJfWLz9gMGx7K6qp9v7hxkEx2LuyT8BXquqv6qq94FvAX+fRdATg2JgUf1MSHvC4i7g5ar62tCiR4ANbX4DsHWovj7JiUnOBlYCz7TT7HeSXNy2efXQmHmjqm6squVVtYLBP/snqurXWaT9AKiq/wO8nuTvtNIa4CUWcU8YXHK6OMnPtWNZw+D+3sLvyfG+m/5RmYDPMnj65y+A3zne+3OMj/UfMDjV/Z/A8236LHAa8Djwans9dWjM77TevMLQExrAKuCFtuw/0L7tP18nYJyfPfW0qPsBXAhsb39O/hhYZk/4t8D32/Hcx+CJpgXfE3/CQ5LU5aUnSVKXQSFJ6jIoJEldBoUkqcugkCR1GRSSpC6DQpLU9f8BXWBdW4fuEMoAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "print('数据类型:{}'.format(type(train['dev_width'].iloc[0])))\n",
    "print('取值范围:{} - {}'.format(train['dev_width'].min(), train['dev_width'].max()))\n",
    "print('数值统计:')\n",
    "print(train['dev_width'].value_counts())\n",
    "train['dev_width'].hist()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8fad2b81",
   "metadata": {
    "heading_collapsed": true,
    "hidden": true
   },
   "source": [
    "## lan"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "id": "507e012e",
   "metadata": {
    "hidden": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "数据类型:<class 'float'>\n",
      "数值统计:\n",
      "zh-CN          244474\n",
      "zh              30574\n",
      "cn              20685\n",
      "zh_CN           11602\n",
      "Zh-CN            8122\n",
      "zh-cn             642\n",
      "ZH                185\n",
      "CN                168\n",
      "tw                119\n",
      "en                 89\n",
      "zh_CN_#Hans        26\n",
      "ko                 11\n",
      "zh-TW               7\n",
      "en-US               3\n",
      "zh-HK               3\n",
      "it                  2\n",
      "TW                  2\n",
      "en-GB               2\n",
      "ja                  2\n",
      "zh-MO               1\n",
      "mi                  1\n",
      "Name: lan, dtype: int64\n"
     ]
    }
   ],
   "source": [
    "print('数据类型:{}'.format(type(train['lan'].iloc[0])))\n",
    "print('数值统计:')\n",
    "print(train['lan'].value_counts())"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0e331ed9",
   "metadata": {
    "heading_collapsed": true,
    "hidden": true
   },
   "source": [
    "## media_id"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "id": "89ba9474",
   "metadata": {
    "hidden": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "数据类型:<class 'numpy.int64'>\n",
      "取值范围:4 - 1544\n",
      "数值统计:\n",
      "29      93978\n",
      "64      40175\n",
      "54      37005\n",
      "39      36466\n",
      "104     22317\n",
      "        ...  \n",
      "1389        1\n",
      "1209        1\n",
      "1254        1\n",
      "1319        1\n",
      "844         1\n",
      "Name: media_id, Length: 284, dtype: int64\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:>"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "print('数据类型:{}'.format(type(train['media_id'].iloc[0])))\n",
    "print('取值范围:{} - {}'.format(train['media_id'].min(), train['media_id'].max()))\n",
    "print('数值统计:')\n",
    "print(train['media_id'].value_counts())\n",
    "train['media_id'].hist()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "243c994b",
   "metadata": {
    "heading_collapsed": true,
    "hidden": true
   },
   "source": [
    "## ntt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "id": "35ccd292",
   "metadata": {
    "hidden": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "数据类型:<class 'numpy.float64'>\n",
      "取值范围:0.0 - 7.0\n",
      "数值统计:\n",
      "2.0    318597\n",
      "6.0    116548\n",
      "5.0     35021\n",
      "0.0     20617\n",
      "3.0      4463\n",
      "4.0      4446\n",
      "7.0       306\n",
      "1.0         2\n",
      "Name: ntt, dtype: int64\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:>"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYoAAAD4CAYAAADy46FuAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAX2ElEQVR4nO3df6zd9X3f8eerOEtdCARCcsUwmplg0QhWSbEME1p1UzJwm6hQiWiOsmBWJkeITIlmaYP8QxuEBNIIG1qD5gYXQ9MQjyQKakIzD3KVReJ3RucAYbjBCw4MltohOBo0l7z3x/m4HN9ef+71/X2S50M6Oue8z/fz+b7P8Vd++fvjHKeqkCTpSH5luRuQJK1sBoUkqcugkCR1GRSSpC6DQpLUtWq5G1hoJ598cq1du3bO43/6059y7LHHLlxDi2iUeoXR6neUeoXR6neUeoXR6nc+vT7++OM/qqp3TvtiVf1C3c4999yaj29+85vzGr+URqnXqtHqd5R6rRqtfkep16rR6nc+vQKP1RH+XvXQkySpy6CQJHUZFJKkLoNCktRlUEiSugwKSVKXQSFJ6jIoJEldBoUkqesX7ic8dPTWXvO1JVnP1nWTXDG0rr03fmBJ1itpftyjkCR1GRSSpC6DQpLUZVBIkroMCklSl0EhSeoyKCRJXQaFJKlrxqBI8qtJHknyl0meTPKHrX5Skl1Jnm33Jw6NuTbJniTPJLl4qH5ukt3ttVuTpNXfmuSLrf5wkrVDYza3dTybZPOCvntJ0oxms0fxOvBbVfXrwDnAxiTnA9cA91fVmcD97TlJzgI2Ae8BNgKfTXJMm+s2YAtwZrttbPUrgQNVdQZwC3BTm+sk4DrgPGADcN1wIEmSFt+MQdH+3+2D7elb2q2AS4Adrb4DuLQ9vgS4u6per6rngD3AhiSnAMdX1YPtP/K+c8qYQ3PdA1zY9jYuBnZV1f6qOgDs4s1wkSQtgVn91lPbI3gcOAP4o6p6OMlYVb0IUFUvJnlXW/xU4KGh4fta7Wft8dT6oTHPt7kmk7wCvGO4Ps2Y4f62MNhTYWxsjImJidm8rWkdPHhwXuOX0kL1unXd5PybmYWx1YevayV/zqO0HcBo9TtKvcJo9btYvc4qKKrqDeCcJG8HvpLk7M7imW6KTn2uY4b72wZsA1i/fn2Nj4932uubmJhgPuOX0kL1esUS/ijgzbvf3OT2fmR8SdY7F6O0HcBo9TtKvcJo9btYvR7VVU9V9WNggsHhn5fa4STa/cttsX3AaUPD1gAvtPqaaeqHjUmyCjgB2N+ZS5K0RGZz1dM7254ESVYD7we+B9wLHLoKaTPw1fb4XmBTu5LpdAYnrR9ph6leTXJ+O/9w+ZQxh+a6DHigncf4BnBRkhPbSeyLWk2StERmc+jpFGBHO0/xK8DOqvrzJA8CO5NcCfwA+BBAVT2ZZCfwFDAJXN0OXQFcBdwBrAbuazeA24G7kuxhsCexqc21P8n1wKNtuU9X1f75vGFJ0tGZMSiq6n8C752m/tfAhUcYcwNwwzT1x4C/c36jql6jBc00r20Hts/UpyRpcfjNbElSl0EhSeoyKCRJXQaFJKnLoJAkdRkUkqQug0KS1GVQSJK6DApJUpdBIUnqMigkSV0GhSSpy6CQJHUZFJKkLoNCktRlUEiSugwKSVKXQSFJ6jIoJEldBoUkqcugkCR1GRSSpC6DQpLUNWNQJDktyTeTPJ3kySSfaPU/SPLDJE+02+8Mjbk2yZ4kzyS5eKh+bpLd7bVbk6TV35rki63+cJK1Q2M2J3m23TYv6LuXJM1o1SyWmQS2VtV3krwNeDzJrvbaLVX174cXTnIWsAl4D/D3gf+W5B9V1RvAbcAW4CHg68BG4D7gSuBAVZ2RZBNwE/DPk5wEXAesB6qt+96qOjC/ty1Jmq0Z9yiq6sWq+k57/CrwNHBqZ8glwN1V9XpVPQfsATYkOQU4vqoerKoC7gQuHRqzoz2+B7iw7W1cDOyqqv0tHHYxCBdJ0hKZzR7F32qHhN4LPAxcAHw8yeXAYwz2Og4wCJGHhobta7WftcdT67T75wGqajLJK8A7huvTjBnuawuDPRXGxsaYmJg4mrd1mIMHD85r/FJaqF63rpucfzOzMLb68HWt5M95lLYDGK1+R6lXGK1+F6vXWQdFkuOALwGfrKqfJLkNuJ7BIaHrgZuB3wcyzfDq1JnjmDcLVduAbQDr16+v8fHx7nvpmZiYYD7jl9JC9XrFNV+bfzOzsHXdJDfvfnOT2/uR8SVZ71yM0nYAo9XvKPUKo9XvYvU6q6uekryFQUh8vqq+DFBVL1XVG1X1c+CPgQ1t8X3AaUPD1wAvtPqaaeqHjUmyCjgB2N+ZS5K0RGZz1VOA24Gnq+ozQ/VThhb7PeC77fG9wKZ2JdPpwJnAI1X1IvBqkvPbnJcDXx0ac+iKpsuAB9p5jG8AFyU5McmJwEWtJklaIrM59HQB8FFgd5InWu1TwIeTnMPgUNBe4GMAVfVkkp3AUwyumLq6XfEEcBVwB7CawdVO97X67cBdSfYw2JPY1Oban+R64NG23Kerav9c3qgkaW5mDIqq+jbTnyv4emfMDcAN09QfA86epv4a8KEjzLUd2D5Tn5KkxeE3syVJXQaFJKnLoJAkdRkUkqQug0KS1GVQSJK6DApJUpdBIUnqMigkSV0GhSSpy6CQJHUZFJKkLoNCktRlUEiSugwKSVKXQSFJ6jIoJEldBoUkqcugkCR1GRSSpC6DQpLUZVBIkroMCklSl0EhSeqaMSiSnJbkm0meTvJkkk+0+klJdiV5tt2fODTm2iR7kjyT5OKh+rlJdrfXbk2SVn9rki+2+sNJ1g6N2dzW8WySzQv67iVJM5rNHsUksLWq/jFwPnB1krOAa4D7q+pM4P72nPbaJuA9wEbgs0mOaXPdBmwBzmy3ja1+JXCgqs4AbgFuanOdBFwHnAdsAK4bDiRJ0uKbMSiq6sWq+k57/CrwNHAqcAmwoy22A7i0Pb4EuLuqXq+q54A9wIYkpwDHV9WDVVXAnVPGHJrrHuDCtrdxMbCrqvZX1QFgF2+GiyRpCaw6moXbIaH3Ag8DY1X1IgzCJMm72mKnAg8NDdvXaj9rj6fWD415vs01meQV4B3D9WnGDPe1hcGeCmNjY0xMTBzN2zrMwYMH5zV+KS1Ur1vXTc6/mVkYW334ulby5zxK2wGMVr+j1CuMVr+L1eusgyLJccCXgE9W1U/a6YVpF52mVp36XMe8WajaBmwDWL9+fY2Pjx+ptxlNTEwwn/FLaaF6veKar82/mVnYum6Sm3e/ucnt/cj4kqx3LkZpO4DR6neUeoXR6nexep3VVU9J3sIgJD5fVV9u5Zfa4STa/cutvg84bWj4GuCFVl8zTf2wMUlWAScA+ztzSZKWyGyuegpwO/B0VX1m6KV7gUNXIW0GvjpU39SuZDqdwUnrR9phqleTnN/mvHzKmENzXQY80M5jfAO4KMmJ7ST2Ra0mSVoiszn0dAHwUWB3kida7VPAjcDOJFcCPwA+BFBVTybZCTzF4Iqpq6vqjTbuKuAOYDVwX7vBIIjuSrKHwZ7EpjbX/iTXA4+25T5dVfvn9lYlSXMxY1BU1beZ/lwBwIVHGHMDcMM09ceAs6epv0YLmmle2w5sn6lPSdLi8JvZkqQug0KS1GVQSJK6DApJUpdBIUnqMigkSV0GhSSpy6CQJHUZFJKkLoNCktRlUEiSugwKSVKXQSFJ6jIoJEldBoUkqcugkCR1GRSSpC6DQpLUZVBIkroMCklSl0EhSeoyKCRJXQaFJKlrxqBIsj3Jy0m+O1T7gyQ/TPJEu/3O0GvXJtmT5JkkFw/Vz02yu712a5K0+luTfLHVH06ydmjM5iTPttvmBXvXkqRZm80exR3Axmnqt1TVOe32dYAkZwGbgPe0MZ9Nckxb/jZgC3Bmux2a80rgQFWdAdwC3NTmOgm4DjgP2ABcl+TEo36HkqR5mTEoqupbwP5ZzncJcHdVvV5VzwF7gA1JTgGOr6oHq6qAO4FLh8bsaI/vAS5sexsXA7uqan9VHQB2MX1gSZIW0ap5jP14ksuBx4Ct7S/zU4GHhpbZ12o/a4+n1mn3zwNU1WSSV4B3DNenGXOYJFsY7K0wNjbGxMTEnN/UwYMH5zV+KS1Ur1vXTc6/mVkYW334ulby5zxK2wGMVr+j1CuMVr+L1etcg+I24Hqg2v3NwO8DmWbZ6tSZ45jDi1XbgG0A69evr/Hx8U7rfRMTE8xn/FJaqF6vuOZr829mFraum+Tm3W9ucns/Mr4k652LUdoOYLT6HaVeYbT6Xaxe53TVU1W9VFVvVNXPgT9mcA4BBv/qP21o0TXAC62+Zpr6YWOSrAJOYHCo60hzSZKW0JyCop1zOOT3gENXRN0LbGpXMp3O4KT1I1X1IvBqkvPb+YfLga8OjTl0RdNlwAPtPMY3gIuSnNhOYl/UapKkJTTjoackXwDGgZOT7GNwJdJ4knMYHAraC3wMoKqeTLITeAqYBK6uqjfaVFcxuIJqNXBfuwHcDtyVZA+DPYlNba79Sa4HHm3LfbqqZntSXZK0QGYMiqr68DTl2zvL3wDcME39MeDsaeqvAR86wlzbge0z9ShJWjx+M1uS1GVQSJK6DApJUpdBIUnqMigkSV0GhSSpy6CQJHUZFJKkLoNCktRlUEiSugwKSVKXQSFJ6jIoJEldBoUkqcugkCR1GRSSpK4Z/+MiSRpFa6/52oLMs3XdJFcc5Vx7b/zAgqx7pXCPQpLUZVBIkroMCklSl0EhSeoyKCRJXQaFJKnLoJAkdc0YFEm2J3k5yXeHaicl2ZXk2XZ/4tBr1ybZk+SZJBcP1c9Nsru9dmuStPpbk3yx1R9OsnZozOa2jmeTbF6wdy1JmrXZ7FHcAWycUrsGuL+qzgTub89JchawCXhPG/PZJMe0MbcBW4Az2+3QnFcCB6rqDOAW4KY210nAdcB5wAbguuFAkiQtjRmDoqq+BeyfUr4E2NEe7wAuHarfXVWvV9VzwB5gQ5JTgOOr6sGqKuDOKWMOzXUPcGHb27gY2FVV+6vqALCLvxtYkqRFNtef8BirqhcBqurFJO9q9VOBh4aW29dqP2uPp9YPjXm+zTWZ5BXgHcP1acYcJskWBnsrjI2NMTExMce3BQcPHpzX+KW0UL1uXTc5/2ZmYWz14etayZ/zKG0HMFr9LlWvC7VdT91uZ2O5/iwW67Nd6N96yjS16tTnOubwYtU2YBvA+vXra3x8fMZGj2RiYoL5jF9KC9Xr0f6OzVxtXTfJzbvf3OT2fmR8SdY7F6O0HcBo9btUvS7Udj11u52N5dq2F+uznetVTy+1w0m0+5dbfR9w2tBya4AXWn3NNPXDxiRZBZzA4FDXkeaSJC2huQbFvcChq5A2A18dqm9qVzKdzuCk9SPtMNWrSc5v5x8unzLm0FyXAQ+08xjfAC5KcmI7iX1Rq0mSltCM+1NJvgCMAycn2cfgSqQbgZ1JrgR+AHwIoKqeTLITeAqYBK6uqjfaVFcxuIJqNXBfuwHcDtyVZA+DPYlNba79Sa4HHm3Lfbqqpp5UlyQtshmDoqo+fISXLjzC8jcAN0xTfww4e5r6a7Sgmea17cD2mXqUJC0ev5ktSeoyKCRJXQaFJKnLoJAkdRkUkqQug0KS1GVQSJK6DApJUpdBIUnqMigkSV0GhSSpy6CQJHUZFJKkLoNCktRlUEiSugwKSVKXQSFJ6jIoJEldBoUkqcugkCR1GRSSpC6DQpLUZVBIkrrmFRRJ9ibZneSJJI+12klJdiV5tt2fOLT8tUn2JHkmycVD9XPbPHuS3Jokrf7WJF9s9YeTrJ1Pv5Kko7cQexTvq6pzqmp9e34NcH9VnQnc356T5CxgE/AeYCPw2STHtDG3AVuAM9ttY6tfCRyoqjOAW4CbFqBfSdJRWIxDT5cAO9rjHcClQ/W7q+r1qnoO2ANsSHIKcHxVPVhVBdw5Zcyhue4BLjy0tyFJWhoZ/N08x8HJc8ABoID/XFXbkvy4qt4+tMyBqjoxyX8CHqqqP23124H7gL3AjVX1/lb/p8C/q6oPJvkusLGq9rXX/go4r6p+NKWPLQz2SBgbGzv37rvvnvN7OnjwIMcdd9ycxy+lhep19w9fWYBuZja2Gl76f28+X3fqCUuy3rkYpe0ARqvfpep1obbrqdvtbCzXtj2fz/Z973vf40NHhg6zal5dwQVV9UKSdwG7knyvs+x0ewLVqffGHF6o2gZsA1i/fn2Nj493m+6ZmJhgPuOX0kL1esU1X5t/M7Owdd0kN+9+c5Pb+5HxJVnvXIzSdgCj1e9S9bpQ2/XU7XY2lmvbXqzPdl6HnqrqhXb/MvAVYAPwUjucRLt/uS2+DzhtaPga4IVWXzNN/bAxSVYBJwD759OzJOnozDkokhyb5G2HHgMXAd8F7gU2t8U2A19tj+8FNrUrmU5ncNL6kap6EXg1yfnt/MPlU8Ycmusy4IGaz7EySdJRm8+hpzHgK+3c8irgz6rqL5I8CuxMciXwA+BDAFX1ZJKdwFPAJHB1Vb3R5roKuANYzeC8xX2tfjtwV5I9DPYkNs2jX0nSHMw5KKrq+8CvT1P/a+DCI4y5AbhhmvpjwNnT1F+jBY0kaXn4zWxJUpdBIUnqMigkSV0GhSSpa75fuJOkrrVTvvi2dd3kkn3JUwvDPQpJUpdBIUnqMigkSV0GhSSpy6CQJHUZFJKkLoNCktRlUEiSuvzC3RS7f/jKsnwZaO+NH1jydUrSbLhHIUnqMigkSV0GhSSpy6CQJHUZFJKkLoNCktRlUEiSugwKSVKXQSFJ6jIoJEldI/ETHkk2Av8ROAb4XFXduMwtaYRN/T+cpzNq/6/zTP36EzGajxW/R5HkGOCPgN8GzgI+nOSs5e1Kkn55rPigADYAe6rq+1X1N8DdwCXL3JMk/dJIVS13D11JLgM2VtW/as8/CpxXVR8fWmYLsKU9fTfwzDxWeTLwo3mMX0qj1CuMVr+j1CuMVr+j1CuMVr/z6fUfVNU7p3thFM5RZJraYelWVduAbQuysuSxqlq/EHMttlHqFUar31HqFUar31HqFUar38XqdRQOPe0DTht6vgZ4YZl6kaRfOqMQFI8CZyY5PcnfAzYB9y5zT5L0S2PFH3qqqskkHwe+weDy2O1V9eQirnJBDmEtkVHqFUar31HqFUar31HqFUar30XpdcWfzJYkLa9ROPQkSVpGBoUkqcugaJJsTPJMkj1JrlnufnqSbE/ycpLvLncvM0lyWpJvJnk6yZNJPrHcPfUk+dUkjyT5y9bvHy53TzNJckyS/5Hkz5e7l5kk2Ztkd5Inkjy23P30JHl7knuSfK9tv/9kuXs6kiTvbp/podtPknxyweb3HMXf/kzI/wL+GYPLcR8FPlxVTy1rY0eQ5DeBg8CdVXX2cvfTk+QU4JSq+k6StwGPA5eu4M82wLFVdTDJW4BvA5+oqoeWubUjSvJvgPXA8VX1weXupyfJXmB9Va34L7Al2QH896r6XLvi8teq6sfL3NaM2t9nP2TwxeT/vRBzukcxMFI/E1JV3wL2L3cfs1FVL1bVd9rjV4GngVOXt6sjq4GD7elb2m3F/msqyRrgA8DnlruXXyRJjgd+E7gdoKr+ZhRCorkQ+KuFCgkwKA45FXh+6Pk+VvBfZqMqyVrgvcDDy9xKVzuU8wTwMrCrqlZyv/8B+LfAz5e5j9kq4L8mebz99M5K9Q+B/wv8STus97kkxy53U7O0CfjCQk5oUAzM+DMhmp8kxwFfAj5ZVT9Z7n56quqNqjqHwa8AbEiyIg/vJfkg8HJVPb7cvRyFC6rqNxj8GvTV7TDqSrQK+A3gtqp6L/BTYEWfuwRoh8h+F/gvCzmvQTHgz4Qsonas/0vA56vqy8vdz2y1Qw0TwMbl7eSILgB+tx33vxv4rSR/urwt9VXVC+3+ZeArDA77rkT7gH1De5P3MAiOle63ge9U1UsLOalBMeDPhCySdnL4duDpqvrMcvczkyTvTPL29ng18H7ge8va1BFU1bVVtaaq1jLYZh+oqn+xzG0dUZJj2wUNtMM4FwEr8sq9qvo/wPNJ3t1KFwIr8gKMKT7MAh92ghH4CY+lsAw/EzIvSb4AjAMnJ9kHXFdVty9vV0d0AfBRYHc77g/wqar6+vK11HUKsKNdOfIrwM6qWvGXnY6IMeArg387sAr4s6r6i+VtqetfA59v/3j8PvAvl7mfriS/xuDKzY8t+NxeHitJ6vHQkySpy6CQJHUZFJKkLoNCktRlUEiSugwKSVKXQSFJ6vr/+rUXsGjKUsQAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "print('数据类型:{}'.format(type(train['ntt'].iloc[0])))\n",
    "print('取值范围:{} - {}'.format(train['ntt'].min(), train['ntt'].max()))\n",
    "print('数值统计:')\n",
    "print(train['ntt'].value_counts())\n",
    "train['ntt'].hist()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fa4d962f",
   "metadata": {
    "heading_collapsed": true,
    "hidden": true
   },
   "source": [
    "## os"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "id": "7a3ec42d",
   "metadata": {
    "hidden": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "数据类型:<class 'str'>\n",
      "数值统计:\n",
      "android    303175\n",
      "Android    196825\n",
      "Name: os, dtype: int64\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:>"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "print('数据类型:{}'.format(type(train['os'].iloc[0])))\n",
    "print('数值统计:')\n",
    "print(train['os'].value_counts())\n",
    "train['os'].hist()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "45f2c61f",
   "metadata": {
    "heading_collapsed": true,
    "hidden": true
   },
   "source": [
    "## osv"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "id": "d2f235de",
   "metadata": {
    "hidden": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "数据类型:<class 'str'>\n",
      "数值统计:\n",
      "8.1.0                    151419\n",
      "9                         71332\n",
      "6.0.1                     31714\n",
      "7.1.1                     26503\n",
      "9.0.0                     24385\n",
      "                          ...  \n",
      "Android 7.1                   1\n",
      "5.1.1-F-20180719.9007         1\n",
      "2.9.2                         1\n",
      "Android 4.3.1                 1\n",
      "2.3.7                         1\n",
      "Name: osv, Length: 154, dtype: int64\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:>"
      ]
     },
     "execution_count": 55,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "print('数据类型:{}'.format(type(train['osv'].iloc[0])))\n",
    "print('数值统计:')\n",
    "print(train['osv'].value_counts())\n",
    "train['osv'].hist()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8acc591e",
   "metadata": {
    "heading_collapsed": true,
    "hidden": true
   },
   "source": [
    "## package"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "id": "86b66376",
   "metadata": {
    "hidden": true,
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "数据类型:<class 'numpy.int64'>\n",
      "取值范围:0 - 2327\n",
      "数值统计:\n",
      "0       131906\n",
      "4        90513\n",
      "9        37005\n",
      "18       22367\n",
      "14       22139\n",
      "         ...  \n",
      "1670         1\n",
      "1415         1\n",
      "1928         1\n",
      "1161         1\n",
      "2047         1\n",
      "Name: package, Length: 1950, dtype: int64\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:>"
      ]
     },
     "execution_count": 56,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "print('数据类型:{}'.format(type(train['package'].iloc[0])))\n",
    "print('取值范围:{} - {}'.format(train['package'].min(), train['package'].max()))\n",
    "print('数值统计:')\n",
    "print(train['package'].value_counts())\n",
    "train['package'].hist()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b7521682",
   "metadata": {
    "heading_collapsed": true,
    "hidden": true
   },
   "source": [
    "## timestamp"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "id": "f347e259",
   "metadata": {
    "hidden": true,
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "数据类型:<class 'numpy.float64'>\n",
      "取值范围:1559491201174.7812 - 1560096004317.4924\n",
      "数值统计:\n",
      "1.559654e+12    1\n",
      "1.559695e+12    1\n",
      "1.560080e+12    1\n",
      "1.559745e+12    1\n",
      "1.559608e+12    1\n",
      "               ..\n",
      "1.559722e+12    1\n",
      "1.559561e+12    1\n",
      "1.559699e+12    1\n",
      "1.559638e+12    1\n",
      "1.559959e+12    1\n",
      "Name: timestamp, Length: 500000, dtype: int64\n"
     ]
    }
   ],
   "source": [
    "print('数据类型:{}'.format(type(train['timestamp'].iloc[0])))\n",
    "print('取值范围:{} - {}'.format(train['timestamp'].min(), train['timestamp'].max()))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f8474858",
   "metadata": {
    "heading_collapsed": true,
    "hidden": true
   },
   "source": [
    "## version"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "id": "b6724a3c",
   "metadata": {
    "hidden": true,
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "数据类型:<class 'str'>\n",
      "数值统计:\n",
      "0            292156\n",
      "5             56691\n",
      "8             38348\n",
      "4             24262\n",
      "3             23857\n",
      "7             22801\n",
      "2             12750\n",
      "1              9184\n",
      "11             8867\n",
      "6              8527\n",
      "V3              806\n",
      "9               765\n",
      "v1              611\n",
      "10              126\n",
      "P_Final_6        92\n",
      "V6               88\n",
      "GA3              35\n",
      "GA2              10\n",
      "15                9\n",
      "V2                8\n",
      " 2                6\n",
      "50                1\n",
      "Name: version, dtype: int64\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:>"
      ]
     },
     "execution_count": 59,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "print('数据类型:{}'.format(type(train['version'].iloc[0])))\n",
    "print('数值统计:')\n",
    "print(train['version'].value_counts())\n",
    "train['version'].hist()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "815e63f4",
   "metadata": {
    "heading_collapsed": true,
    "hidden": true
   },
   "source": [
    "## fea_hash"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "c6c382f2",
   "metadata": {
    "hidden": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "数据类型:<class 'str'>\n",
      "取值范围:0 - 999995758\n",
      "数值统计:\n",
      "68083895      110\n",
      "235856055      99\n",
      "51306679       91\n",
      "2815114810     77\n",
      "16777343       60\n",
      "             ... \n",
      "3634257457      1\n",
      "1899838579      1\n",
      "2314798372      1\n",
      "1439675943      1\n",
      "1129055268      1\n",
      "Name: fea_hash, Length: 402980, dtype: int64\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:>"
      ]
     },
     "execution_count": 60,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "print('数据类型:{}'.format(type(train['fea_hash'].iloc[0])))\n",
    "print('取值范围:{} - {}'.format(train['fea_hash'].min(), train['fea_hash'].max()))\n",
    "print('数值统计:')\n",
    "print(train['fea_hash'].value_counts())\n",
    "train['fea_hash'].hist()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7b016ed6",
   "metadata": {
    "heading_collapsed": true,
    "hidden": true
   },
   "source": [
    "## fea1_hash"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "4fabe8f5",
   "metadata": {
    "hidden": true,
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "数据类型:<class 'numpy.int64'>\n",
      "取值范围:12400 - 4291920155\n",
      "数值统计:\n",
      "4190764663    28393\n",
      "2329670524    24969\n",
      "876774520     14636\n",
      "131824507     11738\n",
      "2728353831    10225\n",
      "              ...  \n",
      "2150732143        1\n",
      "2283997756        1\n",
      "750519005         1\n",
      "3880749173        1\n",
      "2764201908        1\n",
      "Name: fea1_hash, Length: 4959, dtype: int64\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:>"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYoAAAEFCAYAAAD9mKAdAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAWK0lEQVR4nO3df4xl5X3f8fcnrIM3dsD8sEeURVlaqBNg46SsMI2lapSNzDa2DG3AXcs263arVRFxnWqjBNo/UB2tCmocJ6QFaRUoP4IMG+IKFJc4W/DIrcQPg3+tARNWgcKarYkLJqwriId++8d9Jpkd33l2du7M3pnl/ZKu5tzvOc+5z312Zj77nHPumVQVkiTN58fG3QFJ0spmUEiSugwKSVKXQSFJ6jIoJElda8bdgaV26qmn1vr16xfd/gc/+AFve9vblq5DxxDHZjjHZX6OzfxW2tg89thj36uqdw5bd8wFxfr163n00UcX3X5qaorJycml69AxxLEZznGZn2Mzv5U2Nkn+13zrPPQkSeoyKCRJXQaFJKnLoJAkdR02KJLcnOTFJN+aVfuPSb6d5JtJ/muSd8xad3WSfUmeSnLRrPr5Sfa2ddcnSasfn+SuVn84yfpZbbYmebo9ti7Vm5YkLdxCZhS3AJvn1PYA51XVzwJ/DlwNkOQcYAtwbmtzQ5LjWpsbge3A2e0xs89twMtVdRbwWeC6tq+TgWuA9wIXANckOenI36IkaRSHDYqq+jLw0pzan1XVdHv6ELCuLV8M3FlVr1fVM8A+4IIkpwEnVNWDNbhd7W3AJbPa3NqW7wY2tdnGRcCeqnqpql5mEE5zA0uStMyW4nMU/wK4qy2fziA4ZuxvtR+25bn1mTbPA1TVdJJXgFNm14e0OUSS7QxmK0xMTDA1NbXoN3Pw4MGR2h/LHJvhHJf5OTbzW01jM1JQJPl3wDRwx0xpyGbVqS+2zaHFql3ALoCNGzfWKB9iWWkfgllJHJvhHJf5OTbzW01js+igaCeXPwhsqr/960f7gTNmbbYOeKHV1w2pz26zP8ka4EQGh7r2A5Nz2kwttr/Sm9n6q74wltfdsWH6kB9irU6Lujw2yWbgN4EPVdX/nbXqXmBLu5LpTAYnrR+pqgPAq0kubOcfLgfumdVm5oqmS4EHWvB8EXh/kpPaSez3t5ok6Sg67IwiyecY/M/+1CT7GVyJdDVwPLCnXeX6UFX9q6p6PMlu4AkGh6SurKo32q6uYHAF1VrgvvYAuAm4Pck+BjOJLQBV9VKS3wK+0rb7dFUdclJdkrT8DhsUVfWRIeWbOtvvBHYOqT8KnDek/hpw2Tz7uhm4+XB9lCQtHz+ZLUnqMigkSV0GhSSpy6CQJHUZFJKkLoNCktRlUEiSugwKSVKXQSFJ6jIoJEldBoUkqcugkCR1GRSSpC6DQpLUZVBIkroMCklSl0EhSeoyKCRJXQaFJKnLoJAkdRkUkqQug0KS1GVQSJK6DApJUpdBIUnqMigkSV2HDYokNyd5Mcm3ZtVOTrInydPt60mz1l2dZF+Sp5JcNKt+fpK9bd31SdLqxye5q9UfTrJ+Vput7TWeTrJ1yd61JGnBFjKjuAXYPKd2FXB/VZ0N3N+ek+QcYAtwbmtzQ5LjWpsbge3A2e0xs89twMtVdRbwWeC6tq+TgWuA9wIXANfMDiRJ0tFx2KCoqi8DL80pXwzc2pZvBS6ZVb+zql6vqmeAfcAFSU4DTqiqB6uqgNvmtJnZ193ApjbbuAjYU1UvVdXLwB5+NLAkSctszSLbTVTVAYCqOpDkXa1+OvDQrO32t9oP2/Lc+kyb59u+ppO8Apwyuz6kzSGSbGcwW2FiYoKpqalFvi04ePDgSO2PZY7NcKthXHZsmB7L606sZcWPzbishu+bGYsNivlkSK069cW2ObRYtQvYBbBx48aanJw8bEfnMzU1xSjtj2WOzXCrYVw+cdUXxvK6OzZM8+EVPjbjshq+b2Ys9qqn77bDSbSvL7b6fuCMWdutA15o9XVD6oe0SbIGOJHBoa759iVJOooWGxT3AjNXIW0F7plV39KuZDqTwUnrR9phqleTXNjOP1w+p83Mvi4FHmjnMb4IvD/JSe0k9vtbTZJ0FB320FOSzwGTwKlJ9jO4EulaYHeSbcBzwGUAVfV4kt3AE8A0cGVVvdF2dQWDK6jWAve1B8BNwO1J9jGYSWxp+3opyW8BX2nbfbqq5p5UlyQts8MGRVV9ZJ5Vm+bZfiewc0j9UeC8IfXXaEEzZN3NwM2H66Mkafn4yWxJUpdBIUnqMigkSV0GhSSpa6k/cCdJb3rrF/ABxx0bppf8g5DPXvuBJd3fDGcUkqQug0KS1GVQSJK6DApJUpdBIUnqMigkSV0GhSSpy6CQJHUZFJKkLoNCktRlUEiSugwKSVKXQSFJ6jIoJEldBoUkqcugkCR1GRSSpC6DQpLUZVBIkroMCklS10hBkeTfJHk8ybeSfC7JW5OcnGRPkqfb15NmbX91kn1Jnkpy0az6+Un2tnXXJ0mrH5/krlZ/OMn6UforSTpyiw6KJKcD/xrYWFXnAccBW4CrgPur6mzg/vacJOe09ecCm4EbkhzXdncjsB04uz02t/o24OWqOgv4LHDdYvsrSVqcUQ89rQHWJlkD/ATwAnAxcGtbfytwSVu+GLizql6vqmeAfcAFSU4DTqiqB6uqgNvmtJnZ193AppnZhiTp6Fh0UFTVd4DfBp4DDgCvVNWfARNVdaBtcwB4V2tyOvD8rF3sb7XT2/Lc+iFtqmoaeAU4ZbF9liQduTWLbdjOPVwMnAl8H/ijJB/rNRlSq06912ZuX7YzOHTFxMQEU1NTnW70HTx4cKT2xzLHZrjVMC47NkyP5XUn1rLix2Y5LGS8J9Yu/b/Lco31ooMC+CXgmar6S4Aknwd+AfhuktOq6kA7rPRi234/cMas9usYHKra35bn1me32d8Ob50IvDS3I1W1C9gFsHHjxpqcnFz0m5qammKU9scyx2a41TAun7jqC2N53R0bpvnwCh+b5bCQ8d6xYZrP7B3lV/CPevajk0u6vxmjnKN4DrgwyU+08wabgCeBe4GtbZutwD1t+V5gS7uS6UwGJ60faYenXk1yYdvP5XPazOzrUuCBdh5DknSULDrOqurhJHcDXwWmga8x+F/924HdSbYxCJPL2vaPJ9kNPNG2v7Kq3mi7uwK4BVgL3NceADcBtyfZx2AmsWWx/ZUkLc5I856quga4Zk75dQazi2Hb7wR2Dqk/Cpw3pP4aLWgkSePhJ7MlSV0GhSSpy6CQJHUZFJKkLoNCktRlUEiSugwKSVKXQSFJ6jIoJEldBoUkqcugkCR1GRSSpC6DQpLUZVBIkroMCklSl0EhSeoyKCRJXQaFJKnLoJAkdRkUkqQug0KS1GVQSJK6DApJUpdBIUnqMigkSV0GhSSpa6SgSPKOJHcn+XaSJ5P8wyQnJ9mT5On29aRZ21+dZF+Sp5JcNKt+fpK9bd31SdLqxye5q9UfTrJ+lP5Kko7cqDOK3wP+tKp+GngP8CRwFXB/VZ0N3N+ek+QcYAtwLrAZuCHJcW0/NwLbgbPbY3OrbwNerqqzgM8C143YX0nSEVp0UCQ5AfhHwE0AVfXXVfV94GLg1rbZrcAlbfli4M6qer2qngH2ARckOQ04oaoerKoCbpvTZmZfdwObZmYbkqSjY80Ibf8u8JfAf0nyHuAx4FPARFUdAKiqA0ne1bY/HXhoVvv9rfbDtjy3PtPm+bav6SSvAKcA35vdkSTbGcxImJiYYGpqatFv6uDBgyO1P5Y5NsOthnHZsWF6LK87sZYVPzbLYSHjPbF26f9dlmusRwmKNcA/AD5ZVQ8n+T3aYaZ5DJsJVKfea3NooWoXsAtg48aNNTk52elG39TUFKO0P5Y5NsOthnH5xFVfGMvr7tgwzYdX+Ngsh4WM944N03xm7yi/gn/Usx+dXNL9zRjlHMV+YH9VPdye380gOL7bDifRvr44a/szZrVfB7zQ6uuG1A9pk2QNcCLw0gh9liQdoUUHRVX9b+D5JO9upU3AE8C9wNZW2wrc05bvBba0K5nOZHDS+pF2mOrVJBe28w+Xz2kzs69LgQfaeQxJ0lEy6rznk8AdSX4c+AvgnzMIn91JtgHPAZcBVNXjSXYzCJNp4MqqeqPt5wrgFmAtcF97wOBE+e1J9jGYSWwZsb+SpCM0UlBU1deBjUNWbZpn+53AziH1R4HzhtRfowWNJGk8/GS2JKnLoJAkdRkUkqQug0KS1GVQSJK6DApJUpdBIUnqMigkSV0GhSSpy6CQJHUZFJKkLoNCktRlUEiSugwKSVKXQSFJ6lraP9iqVWn9Av+e8o4N00v6t5efvfYDS7YvScvHGYUkqcugkCR1GRSSpC7PUUhH0ULPB0kriTMKSVKXQSFJ6jIoJEldnqPQm85SnydY6s+XSCuNMwpJUpczCo2NVwBJq8PIM4okxyX5WpI/ac9PTrInydPt60mztr06yb4kTyW5aFb9/CR727rrk6TVj09yV6s/nGT9qP2VJB2ZpZhRfAp4EjihPb8KuL+qrk1yVXv+m0nOAbYA5wJ/B/jvSf5+Vb0B3AhsBx4C/huwGbgP2Aa8XFVnJdkCXAf8syXo87z2fueVsRxv9r5HklaqkWYUSdYBHwD+YFb5YuDWtnwrcMms+p1V9XpVPQPsAy5IchpwQlU9WFUF3Danzcy+7gY2zcw2JElHx6gzit8FfgP4yVm1iao6AFBVB5K8q9VPZzBjmLG/1X7YlufWZ9o83/Y1neQV4BTge7M7kWQ7gxkJExMTTE1NLfoNTawdXMVytI3S51Et9P2Oa2xWOsdlfhNrx/u9PS4L+X5Yju+b5RrrRQdFkg8CL1bVY0kmF9JkSK069V6bQwtVu4BdABs3bqzJyYV0Z7jfv+MePrP36J/jf/ajk0f9NWcs9FDbjg3TYxmblc5xmd+ODdN8eISfx9VqIT9Ty/F9s1y/R0bp5fuADyX5ZeCtwAlJ/hD4bpLT2mziNODFtv1+4IxZ7dcBL7T6uiH12W32J1kDnAi8NEKfJUlHaNHnKKrq6qpaV1XrGZykfqCqPgbcC2xtm20F7mnL9wJb2pVMZwJnA4+0w1SvJrmwnX+4fE6bmX1d2l7jR2YUkqTlsxzz5WuB3Um2Ac8BlwFU1eNJdgNPANPAle2KJ4ArgFuAtQyudrqv1W8Cbk+yj8FMYssy9FeS1LEkQVFVU8BUW/4/wKZ5ttsJ7BxSfxQ4b0j9NVrQSJLGw1t4SJK6DApJUpdBIUnqMigkSV0GhSSpy6CQJHUZFJKkLoNCktRlUEiSurzl5QrhnwWVtFI5o5AkdRkUkqQug0KS1GVQSJK6DApJUpdBIUnqMigkSV0GhSSpy6CQJHUZFJKkLoNCktRlUEiSugwKSVKXQSFJ6jIoJEld/j0KSctqXH9r5dlrPzCW1z0WLXpGkeSMJF9K8mSSx5N8qtVPTrInydPt60mz2lydZF+Sp5JcNKt+fpK9bd31SdLqxye5q9UfTrJ+hPcqSVqEUQ49TQM7qupngAuBK5OcA1wF3F9VZwP3t+e0dVuAc4HNwA1Jjmv7uhHYDpzdHptbfRvwclWdBXwWuG6E/kqSFmHRQVFVB6rqq235VeBJ4HTgYuDWttmtwCVt+WLgzqp6vaqeAfYBFyQ5DTihqh6sqgJum9NmZl93A5tmZhuSpKNjSc5RtENCPw88DExU1QEYhEmSd7XNTgcemtVsf6v9sC3Prc+0eb7tazrJK8ApwPfmvP52BjMSJiYmmJqaWvR7mVgLOzZML7r9scyxGc5xmd84x2aU3wOjWsh7Xo6xWa73PHJQJHk78MfAr1XVX3X+wz9sRXXqvTaHFqp2AbsANm7cWJOTk4fp9fx+/457+Mxez/EPs2PDtGMzhOMyv3GOzbMfnRzL6wJ8YgEn8JdjbJbrPY90eWyStzAIiTuq6vOt/N12OIn29cVW3w+cMav5OuCFVl83pH5ImyRrgBOBl0bpsyTpyIxy1VOAm4Anq+p3Zq26F9jalrcC98yqb2lXMp3J4KT1I+0w1atJLmz7vHxOm5l9XQo80M5jSJKOklHmPe8DPg7sTfL1Vvu3wLXA7iTbgOeAywCq6vEku4EnGFwxdWVVvdHaXQHcAqwF7msPGATR7Un2MZhJbBmhv5KkRVh0UFTV/2T4OQSATfO02QnsHFJ/FDhvSP01WtBIksbDW3hIkroMCklSl0EhSeoyKCRJXQaFJKnLoJAkdRkUkqQub1Aj6Zg0rj+YdCxyRiFJ6jIoJEldBoUkqcugkCR1GRSSpC6DQpLUZVBIkroMCklSl0EhSeoyKCRJXQaFJKnLoJAkdRkUkqQug0KS1GVQSJK6DApJUpdBIUnqMigkSV2rIiiSbE7yVJJ9Sa4ad38k6c1kxQdFkuOA/wz8Y+Ac4CNJzhlvryTpzWPFBwVwAbCvqv6iqv4auBO4eMx9kqQ3jVTVuPvQleRSYHNV/cv2/OPAe6vqV2dtsx3Y3p6+G3hqhJc8FfjeCO2PZY7NcI7L/Byb+a20sfmpqnrnsBVrjnZPFiFDaoekW1XtAnYtyYslj1bVxqXY17HGsRnOcZmfYzO/1TQ2q+HQ037gjFnP1wEvjKkvkvSmsxqC4ivA2UnOTPLjwBbg3jH3SZLeNFb8oaeqmk7yq8AXgeOAm6vq8WV8ySU5hHWMcmyGc1zm59jMb9WMzYo/mS1JGq/VcOhJkjRGBoUkqcugaLxNyPyS3JzkxSTfGndfVpIkZyT5UpInkzye5FPj7tNKkeStSR5J8o02Nv9+3H1aaZIcl+RrSf5k3H05HIMCbxOyALcAm8fdiRVoGthRVT8DXAhc6ffN33gd+MWqeg/wc8DmJBeOt0srzqeAJ8fdiYUwKAa8TUhHVX0ZeGnc/VhpqupAVX21Lb/K4If+9PH2amWogYPt6VvawytnmiTrgA8AfzDuviyEQTFwOvD8rOf78QdeRyDJeuDngYfH3JUVox1a+TrwIrCnqhybv/W7wG8A/2/M/VgQg2LgsLcJkeaT5O3AHwO/VlV/Ne7+rBRV9UZV/RyDuylckOS8MXdpRUjyQeDFqnps3H1ZKINiwNuEaFGSvIVBSNxRVZ8fd39Woqr6PjCF57lmvA/4UJJnGRzm/sUkfzjeLvUZFAPeJkRHLEmAm4Anq+p3xt2flSTJO5O8oy2vBX4J+PZYO7VCVNXVVbWuqtYz+F3zQFV9bMzd6jIoGNwmBJi5TciTwO5lvk3IqpLkc8CDwLuT7E+ybdx9WiHeB3ycwf8Iv94evzzuTq0QpwFfSvJNBv8R21NVK/4yUA3nLTwkSV3OKCRJXQaFJKnLoJAkdRkUkqQug0KSVrkjuXFnkp9Kcn+SbyaZarcT6TIoJGn1u4WFf6Dxt4HbqupngU8D/+FwDQwKSVrlht24M8nfS/KnSR5L8j+S/HRbdQ5wf1v+Egu4AapBIUnHpl3AJ6vqfODXgRta/RvAr7TlfwL8ZJJTejtas2xdlCSNRbtR5S8AfzS40wwAx7evvw78pySfAL4MfIfB31aZl0EhSceeHwO+3+7ee4iqegH4p/A3gfIrVfXK4XYmSTqGtNvdP5PkMhjcwDLJe9ryqUlmfvdfDdx8uP0ZFJK0ys1z486PAtuSfAN4nL89aT0JPJXkz4EJYOdh9+9NASVJPc4oJEldBoUkqcugkCR1GRSSpC6DQpLUZVBIkroMCklS1/8HcDa7mvB69QMAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "print('数据类型:{}'.format(type(train['fea1_hash'].iloc[0])))\n",
    "print('取值范围:{} - {}'.format(train['fea1_hash'].min(), train['fea1_hash'].max()))\n",
    "print('数值统计:')\n",
    "print(train['fea1_hash'].value_counts())\n",
    "train['fea1_hash'].hist()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "06def158",
   "metadata": {
    "heading_collapsed": true,
    "hidden": true
   },
   "source": [
    "## cus_type"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "807a87ac",
   "metadata": {
    "hidden": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "数据类型:<class 'numpy.int64'>\n",
      "取值范围:297 - 1380\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:>"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "print('数据类型:{}'.format(type(train['cus_type'].iloc[0])))\n",
    "print('取值范围:{} - {}'.format(train['cus_type'].min(), train['cus_type'].max()))\n",
    "train['cus_type'].hist()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bffb3d1f",
   "metadata": {
    "heading_collapsed": true,
    "hidden": true
   },
   "source": [
    "## 相关性分析"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "01da90fb",
   "metadata": {
    "hidden": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "corr = train.corr()\n",
    "sns.heatmap(corr, cmap='RdBu', linewidths = 0.05)\n",
    "# 设置Axes的标题\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4af7f781",
   "metadata": {
    "heading_collapsed": true,
    "hidden": true
   },
   "source": [
    "## 其他探索"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "47f6d3bf",
   "metadata": {
    "hidden": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "android_id 362258\n",
      "apptype 89\n",
      "carrier 5\n",
      "dev_height 798\n",
      "dev_ppi 92\n",
      "dev_width 346\n",
      "label 2\n",
      "lan 21\n",
      "media_id 284\n",
      "ntt 8\n",
      "os 2\n",
      "osv 154\n",
      "package 1950\n",
      "sid 500000\n",
      "timestamp 500000\n",
      "version 22\n",
      "fea_hash 402980\n",
      "location 332\n",
      "fea1_hash 4959\n",
      "cus_type 58\n"
     ]
    }
   ],
   "source": [
    "for col in cols:\n",
    "    print(col, train[col].nunique())"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "81a3471d",
   "metadata": {
    "heading_collapsed": true
   },
   "source": [
    "# 使用特征工程对比赛字段进行编码"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "6cf2219a",
   "metadata": {
    "hidden": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[512, 5122, 520, 21000, 1033, 530, 71200, 600, 601, 602, 610, 612, 21100, 621, 110, 4232, 44219, 700, 710, 711, 712, 713, 201, 721, 212, 60119, 731, 222, 223, 230, 7910, 234, 235, 236, 237, 7920, 7930, 764, 766, 767, 768, 769, 770, 772, 773, 774, 775, 777, 780, 782, 784, 785, 786, 787, 788, 789, 790, 792, 800, 801, 802, 292, 810, 303, 311, 320, 376, 378, 380, 383, 384, 386, 900, 390, 6023, 905, 910, 400, 402, 403, 404, 410, 411, 412, 5021, 420, 421, 422, 429, 430, 431, 433, 51122, 440, 442, 443, 444, 445, 500, 501, 502, 503, 510, 511]\n"
     ]
    }
   ],
   "source": [
    "# 处理osv\n",
    "def trans_osv(osv):\n",
    "    global result\n",
    "    osv = str(osv).replace(' ','').replace('.','').replace('Android_','').replace('十核20G_HD','').replace('Android','').replace('W','')\n",
    "    if osv == 'nan' or osv == 'GIONEE_YNGA':\n",
    "        result = 810\n",
    "    elif osv.count('-') >0:\n",
    "        result = int(osv.split('-')[0])\n",
    "    elif osv == 'f073b_changxiang_v01_b1b8_20180915':\n",
    "        result = 810\n",
    "    elif osv == '%E6%B1%9F%E7%81%B5OS+50':\n",
    "        result = 500\n",
    "    else:\n",
    "        result = int(osv)\n",
    "        \n",
    "    if result < 10:\n",
    "        result = result * 100\n",
    "    elif  result < 100:\n",
    "        result = result * 10\n",
    "        \n",
    "    return int(result)\n",
    "train['osv_trans'] = train['osv'].apply(trans_osv)\n",
    "test['osv_trans'] = test['osv'].apply(trans_osv)\n",
    "\n",
    "print(list(set(train['osv_trans'])))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "cb319ce9",
   "metadata": {
    "hidden": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 15]\n"
     ]
    }
   ],
   "source": [
    "# 转化app版本号\n",
    "def trans_version(version):\n",
    "    version = version.replace('V','').replace('P_Final_','').replace(' ','').replace('GA','').replace('v','')\n",
    "    if version == '50':\n",
    "        return int(5)\n",
    "    return int(version)\n",
    "train['version_trans'] = train['version'].apply(trans_version)\n",
    "test['version_trans'] = test['version'].apply(trans_version)\n",
    "\n",
    "print(list(set(train['version_trans'])))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "bf3f65e3",
   "metadata": {
    "hidden": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0]\n"
     ]
    }
   ],
   "source": [
    "# 对语言进行文字化处理\n",
    "lan_dict = {'zh_CN':1,'zh-CN':2,'zh-cn':3,'Zh-CN':4,'ZH':5,'zh':6,'cn':7,'CN':8,'zh_CN_#Hans':9,'zh-HK':10,'zh-MO':11,'zh-TW':12,'tw':13,'TW':14,'en':15,'en-GB':16,'en-US':17,'ja':18,'mi':19,'ko':20,'it':21,'nan':22}\n",
    "train['lan'] = train['lan'].map(lan_dict) \n",
    "train['lan'] = train['lan'].fillna(22)\n",
    "\n",
    "test['lan'] = test['lan'].map(lan_dict) \n",
    "test['lan'] = test['lan'].fillna(22)\n",
    "\n",
    "print(list(set(train['lan'])))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a25aee56",
   "metadata": {},
   "source": [
    "# 使用 Sklearn 中基础树模型完成训练和预测"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "ae2579ba",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 数据加载\n",
    "train = pd.read_csv('./train.csv')\n",
    "test = pd.read_csv('./test.csv')\n",
    "cols = list(train.columns)\n",
    "# 删除出版本不需要的项目\n",
    "remove_list = ['Unnamed: 0', 'os', 'lan', 'sid']\n",
    "for i in remove_list:\n",
    "    cols.remove(i)\n",
    "\n",
    "    \n",
    "# 特征筛选\n",
    "features = train[cols]\n",
    "# 构造fea_hash_len特征\n",
    "features['fea_hash_len'] = features['fea_hash'].map(lambda x: len(str(x)))\n",
    "features['fea1_hash_len'] = features['fea1_hash'].map(lambda x: len(str(x)))\n",
    "# Thinking：为什么将很大的，很长的fea_hash化为0？\n",
    "# 如果fea_hash很长，都归为0，否则为自己的本身\n",
    "features['fea_hash'] = features['fea_hash'].map(lambda x: 0 if len(str(x))>16 else int(x))\n",
    "features['fea1_hash'] = features['fea1_hash'].map(lambda x: 0 if len(str(x))>16 else int(x))\n",
    "\n",
    "\n",
    "features['osv'] = features['osv'].apply(trans_osv)\n",
    "\n",
    "cols.remove('label')\n",
    "test_features = test[cols]\n",
    "# 构造fea_hash_len特征\n",
    "test_features['fea_hash_len'] = test_features['fea_hash'].map(lambda x: len(str(x)))\n",
    "test_features['fea1_hash_len'] = test_features['fea1_hash'].map(lambda x: len(str(x)))\n",
    "# Thinking：为什么将很大的，很长的fea_hash化为0？\n",
    "# 如果fea_hash很长，都归为0，否则为自己的本身\n",
    "test_features['fea_hash'] = test_features['fea_hash'].map(lambda x: 0 if len(str(x))>16 else int(x))\n",
    "test_features['fea1_hash'] = test_features['fea1_hash'].map(lambda x: 0 if len(str(x))>16 else int(x))\n",
    "\n",
    "test_features['osv'] = test_features['osv'].apply(trans_osv)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "fca3ad19",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.500028\n",
      "0.500048\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "[array([0, 0, 0, ..., 1, 1, 1], dtype=int64),\n",
       " array([1, 1, 1, ..., 1, 1, 1], dtype=int64)]"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tree_model = DecisionTreeClassifier()\n",
    "result = []\n",
    "kf = KFold(n_splits=2)\n",
    "for train_index, test_index in kf.split(features):\n",
    "    train_x = features.drop(['timestamp', 'version','label'], axis=1).iloc[train_index]\n",
    "    train_y = features['label'].iloc[train_index]\n",
    "    \n",
    "    test_x = features.drop(['timestamp', 'version','label'], axis=1).iloc[train_index]\n",
    "    test_y = features['label'].iloc[test_index]\n",
    "    \n",
    "    \n",
    "    # 模型训练\n",
    "    tree_model.fit(train_x, train_y)\n",
    "    # 校验\n",
    "    test_pred = tree_model.predict(test_x)\n",
    "    print(accuracy_score(test_y, test_pred))\n",
    "    # 保存结果\n",
    "    result.append(tree_model.predict(test_features.drop(['timestamp', 'version'], axis=1)))\n",
    "result"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b066ad69",
   "metadata": {},
   "source": [
    "# 使用 Sklearn 中线性模型完成训练和预测"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "c1ab2724",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0, 1, 0, ..., 0, 0, 0], dtype=int64)"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 使用逻辑回归完成训练\n",
    "lin_model = LogisticRegression()\n",
    "lin_model.fit(features.drop(['timestamp', 'version','label'], axis=1), features['label'])\n",
    "\n",
    "result = lin_model.predict(test_features.drop(['timestamp', 'version'], axis=1))\n",
    "result"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2bccb1cd",
   "metadata": {},
   "source": [
    "# 使用树模型和线性模型，分析特征重要性"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "7e9a9927",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "osv              0.331150\n",
       "dev_width        0.112698\n",
       "fea_hash         0.091669\n",
       "apptype          0.073692\n",
       "android_id       0.066698\n",
       "dev_height       0.064733\n",
       "location         0.063566\n",
       "media_id         0.049212\n",
       "cus_type         0.044198\n",
       "fea1_hash        0.035067\n",
       "package          0.026300\n",
       "dev_ppi          0.017689\n",
       "carrier          0.009977\n",
       "ntt              0.008322\n",
       "fea_hash_len     0.003074\n",
       "fea1_hash_len    0.001954\n",
       "dtype: float64"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 树模型重要性\n",
    "lgb_predictors = [i for i in features.drop(['timestamp', 'version','label'], axis=1).columns]\n",
    "lgb_feat_imp = pd.Series(tree_model.feature_importances_, lgb_predictors).sort_values(ascending=False)\n",
    "lgb_feat_imp"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "a64e9b84",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[-6.94194070e-14,  2.14300733e-16,  1.23345063e-14,\n",
       "         4.84896518e-16,  2.62605452e-17,  2.03398464e-16,\n",
       "        -4.65825624e-18,  8.89375672e-19,  3.76085711e-16,\n",
       "        -7.32626328e-17,  1.04073767e-10,  4.74624992e-18,\n",
       "        -1.53967948e-10, -2.19867176e-17,  1.37639560e-18,\n",
       "         1.30244442e-18]])"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 逻辑回归特征参数\n",
    "lin_model.coef_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "057cfea5",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
